Microcontrollers are widely used in consumer and industrial products to provide sophisticated user interaction and digital control at a small incremental cost. For example, rather than having a switch and a simple timer to control a coffee machine, a microcontroller with a small touchscreen liquid crystal display (LCD) could provide a superior user experience and allow for increased customization of the brew cycle, real-time status of the process and possible interaction with other household devices. A refrigerator might incorporate a microcontroller with an graphics display to track not only the performance of the refrigerator, but also the contents of the refrigerator. This would enable warnings of food expiration, automatic generation of a shopping list, and the automatic ordering of groceries from a delivery service. An industrial application might indicate the operational status of a backup power generator as well as a maintenance schedule combined with a log of performed maintenance and repair.
Where a graphical display is desired, a microcontroller is interfaced with the graphical display using a customized state machine specific to a type of display and possibly limited to particular geometries and color depths. The customized state machine must be redesigned if the characteristics of the display change. For example, the user requirements may change over time such that a monochrome display may be upgraded to a color one on new or existing machines. Alternatively, a different display technology may be substituted if the component pricing fluctuates significantly or where new environmental conditions. Prior to this invention, a change from a monochrome LCD to an active matrix thin-film transistor (TFT) display might require a redesign of the application specific integrated circuit (ASIC) in which the microcontroller and state machine are embedded. The other known approach is to use an off-chip LCD controller (e.g. EPSON Embedded RAMDAC LCD/CRT Controller part S1D13505F00A) adding cost and complexity to the system.
Microcontrollers may also be employed with other parallel data sources or input/output devices to enrich the functionality of existing products and systems or to create new products and systems only possible with computer processing capabilities. Such peripherals include sensor arrays, network interfaces, and multi-point and pressure sensitive touch screens. A great number of possible input or output devices may be incorporated using a parallel data interface and one or more control signals. As with graphical displays, custom logic or external controllers have been required to interface a microcontroller with these input/output devices.